#include "stm32f10x.h"
#include "rs485.h"
#include "usart.h"
#include "delay.h"

void RS485_Config(void)
  { 
    USART2_NVIC_Configuration();
    USART3_NVIC_Configuration();
    RS485_Gpio_Config();
    USART2_Init();
    USART3_Init();
}

void RS485_Gpio_Config(void)
  { 
    //RS485�ӿڳ�ʼ��
    GPIO_InitTypeDef  GPIO_InitStructure; 	
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; //ѡ��˿ںţ�0~15��all��                        
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ѡ��IO�ӿڹ�����ʽ       
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; //����IO�ӿ��ٶȣ�2/10/50MHz��    
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    //RS485�ӿڳ�ʼ��
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //ѡ��˿ںţ�0~15��all��                        
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ѡ��IO�ӿڹ�����ʽ       
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; //����IO�ӿ��ٶȣ�2/10/50MHz��    
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}

void RS485_1_SendByte(unsigned char SendData)
{
  RS485_1_H;
  delay_us(5000);
  USART2SendByte(SendData);
  delay_us(5000);
  RS485_1_L;
}

void RS485_2_SendByte(unsigned char SendData)
{
  RS485_2_H;
  delay_us(5000);
  USART2SendByte(SendData);
  delay_us(5000);
  RS485_2_L;
}

/*
ѡ��IO�ӿڹ�����ʽ��
GPIO_Mode_AIN ģ������
GPIO_Mode_IN_FLOATING ��������
GPIO_Mode_IPD ��������
GPIO_Mode_IPU ��������
GPIO_Mode_Out_PP �������
GPIO_Mode_Out_OD ��©���
GPIO_Mode_AF_PP �����������
GPIO_Mode_AF_OD ���ÿ�©���
*/
